import Main from '@/components/main'
import parentView from '@/components/parent-view'

/**
 * iview-admin中meta除了原生参数外可配置的参数:
 * meta: {
 *  title: { String|Number|Function }
 *         显示在侧边栏、面包屑和标签栏的文字
 *         使用'{{ 多语言字段 }}'形式结合多语言使用，例子看多语言的路由配置;
 *         可以传入一个回调函数，参数是当前路由对象，例子看动态路由和带参路由
 *  hideInBread: (false) 设为true后此级路由将不会出现在面包屑中，示例看QQ群路由配置
 *  hideInMenu: (false) 设为true后在左侧菜单不会显示该页面选项
 *  notCache: (false) 设为true后页面在切换标签后不会缓存，如果需要缓存，无需设置这个字段，而且需要设置页面组件name属性和路由配置的name一致
 *  access: (null) 可访问该页面的权限数组，当前路由设置的权限会影响子路由
 *  icon: (-) 该页面在左侧菜单、面包屑和标签导航处显示的图标，如果是自定义图标，需要在图标名称前加下划线'_'
 *  beforeCloseName: (-) 设置该字段，则在关闭当前tab页时会去'@/router/before-close.js'里寻找该字段名对应的方法，作为关闭前的钩子函数
 * }
 */

export default [{
    path: '/login',
    name: 'login',
    meta: {
        title: 'Login - 登录',
        hideInMenu: true
    },
    component: () =>
        import('@/view/login')
},
{
    path: '/',
    name: '_home',
    redirect: '/home',
    component: Main,
    meta: {
        hideInMenu: true,
        notCache: true
    },
    children: [{
        path: '/home',
        name: 'home',
        meta: {
            hideInMenu: true,
            title: '首页',
            notCache: true,
            icon: 'md-home'
        },
        component: () => import('@/view/HttpAutoTestService/reports')
    }]
},
{
    path: '/QAPlatform/lockscreen',
    name: 'lockscreen',
    meta: {
        hideInMenu: true
    },
    component: () =>
        import('@/view/lockscreen')
},
{
    path: '/401',
    name: 'error_401',
    meta: {
        hideInMenu: true
    },
    component: () =>
        import('@/view/error-page/401.vue')
},
{
    path: '*',
    name: 'error_404',
    meta: {
        hideInMenu: true
    },
    component: () =>
        import('@/view/error-page/404.vue')
},
{
    path: '/500',
    name: 'error_500',
    meta: {
        hideInMenu: true
    },
    component: () =>
        import('@/view/error-page/500.vue')
},
{
    path: '/QAPlatform/HttpAutoTestService',
    name: 'HttpAutoTestService',
    component: Main,
    meta: {
        hideInMenu: false,
        notCache: true,
        title: '接口自动化测试',
        icon: 'md-ionitron'
    },
    children: [
        {
            path: 'user',
            name: 'user',
            meta: {
                title: '用户管理',
                icon: 'md-person'
            },
            component: () => import('@/view/HttpAutoTestService/user')
        },
        {
            path: '/QAPlatform/HttpAutoTestService/environment',
            name: 'environment',
            meta: {
                title: '环境管理',
                icon: 'md-settings'
            },
            component: () => import('@/view/HttpAutoTestService/environment')
        },
        {
            path: 'project_module',
            name: 'project_module',
            meta: {
                title: '项目|模块',
                notCache: true,
                icon: 'md-folder'
            },
            component: () => import('@/view/HttpAutoTestService/project-module')
        },
        {
            path: 'http_api',
            name: 'http_api',
            meta: {
                title: 'HTTP接口',
                notCache: true,
                icon: 'md-outlet'
            },
            component: () => import('@/view/HttpAutoTestService/api')
        },
        {
            path: 'http_ext_method',
            name: 'http_ext_method',
            meta: {
                title: '扩展方法',
                notCache: true,
                icon: 'md-code'
            },
            component: () => import('@/view/HttpAutoTestService/ext-method')
        },
        {
            path: 'testcase_testsuite',
            name: 'testcase_testsuite',
            meta: {
                title: '用例|场景',
                notCache: true,
                icon: 'md-paper'
            },
            component: () => import('@/view/HttpAutoTestService/testcase-testsuite')
        },
        {
            path: 'test_result',
            name: 'test_result',
            meta: {
                title: '测试结果',
                notCache: true,
                icon: 'md-document'
            },
            component: () => import('@/view/HttpAutoTestService/test-result')
        },
        {
            path: 'testcase_result_detail',
            name: 'testcase_result_detail',
            meta: {
                title: '用例结果详情',
                hideInMenu: true,
                notCache: true,
                icon: 'md-filing'
            },
            component: () => import('@/view/HttpAutoTestService/testcase-result-detail')
        },
        {
            path: 'testsuite_result_detail',
            name: 'testsuite_result_detail',
            meta: {
                title: '场景结果详情',
                hideInMenu: true,
                notCache: true,
                icon: 'md-filing'
            },
            component: () => import('@/view/HttpAutoTestService/testsuite-result-detail')
        },
        {
            path: 'parameter_config',
            name: 'parameter_config',
            meta: {
                title: '参数配置',
                icon: 'md-settings',
                hideInBread: true,
            },
            component: parentView,
            children: [
                {
                    path: '/',
                    name: 'parameter_config',
                    meta: {
                        title: '参数配置',
                        icon: 'md-settings'
                    },
                    component: () => import('@/view/HttpAutoTestService/parameter-config'),
                },
                {
                    path: 'mysql_config',
                    name: 'mysql_config',
                    meta: {
                        title: 'MySQL数据库配置',
                        hideInMenu: true,
                        notCache: true,
                        icon: 'md-settings'
                    },
                    component: () => import('@/view/components/HttpAutoTestService/parameter-config/mysql-config')
                },
                {
                    path: 'redis_config',
                    name: 'redis_config',
                    meta: {
                        title: 'Redis数据库配置',
                        hideInMenu: true,
                        notCache: true,
                        icon: 'md-settings'
                    },
                    component: () => import('@/view/components/HttpAutoTestService/parameter-config/redis-config')
                }
            ]
        },
        {
            path: 'http_test_help_doc',
            name: 'http_test_help_doc',
            meta: {
                title: '帮助文档',
                notCache: true,
                icon: 'md-help'
            },
            component: () => import('@/view/HttpAutoTestService/help-docs')
        }
    ]
},
{
    path: '/QAPlatform/HttpAutoTestService/report/:type/:version',
    name: 'report',
    meta: {
        hideInMenu: true
    },
    component: () =>
        import('@/view/HttpAutoTestService/report')
},
{
    path: '/QAPlatform/CeleryScheduledTaskService',
    name: 'CeleryScheduledTaskService',
    component: Main,
    meta: {
        hideInMenu: false,
        notCache: true,
        title: '定时任务服务',
        icon: 'md-alarm'
    },
    children: [{
        path: '/QAPlatform/CeleryScheduledTaskService/crontab_schedule_list',
        name: 'crontab_schedule_list',
        meta: {
            title: 'Crontab日程列表',
            icon: 'md-clock'
        },
        component: () => import('@/view/CeleryScheduledTaskService/crontab-schedule')
    },
    {
        path: '/QAPlatform/CeleryScheduledTaskService/periodic_task_list',
        name: 'periodic_task_list',
        meta: {
            title: '定时任务列表',
            icon: 'md-time'
        },
        component: () => import('@/view/CeleryScheduledTaskService/periodic-task')
    },
    ]
},
]